package com.txzt.gaea.business.plan.domain.model;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.beetl.sql.core.annotatoin.InsertIgnore;
import org.beetl.sql.core.annotatoin.Table;
import org.beetl.sql.core.annotatoin.UpdateIgnore;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 计划下发
 */
@Data
@Table(name="tb_plan_issue")
public class PlanIssue implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 计划下发id */
    private Long id;
    /** 计划编号 */
    private String planNo;
    /** 计划状态 */
    private Integer planStatus;
    /** 项目名称 */
    @ExcelProperty("名称")
    private String projectName;
    /** 计划分类（字典值 - plan_type） */
    private String planType;
    /** 计划子类 */
    @ExcelProperty("计划子类")
    private String subType;
    /** 研究内容 */
    @ExcelProperty("内容")
    private String researchContent;
    /** 承担部门 */
    @ExcelProperty("承担部门")
    private Long departId;
    /** 计划年度 */
    @ExcelProperty("计划年度")
    private Integer planYear;
    /** 研制周期(年) */
    @ExcelProperty("研制周期")
    private Integer leadTime;
    /** 经费预算(元)[长度14位，精度2位] */
    @ExcelProperty("总概算")
    private BigDecimal budgetFund;
    /** 负责人 */
    @ExcelProperty("已安排")
    private Long projectLeader;
    /** 计划开始年度 */
    @ExcelProperty("2022年")
    private Integer startYear;
    /** 计划结束年度 */
    @ExcelProperty("2023年")
    private Integer endYear;
    /** 项目成果 */
    private String resultForm;
    /** 任务来源 */
    @ExcelProperty("任务来源")
    private String taskSource;
    /** 任务来源说明 */
    @ExcelProperty("任务来源说明")
    private String taskSourceExplain;
    /** 备注 */
    @ExcelProperty("备注")
    private String remark;
    /** 提报人 */
    private Long createBy;
    /** 提报时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /** 更新人 */
    private Long updateBy;
    /** 更新时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /** 提报部门 */
    private Long deptId;
    /** 是否删除 */
    private Integer isDelete;

    private BigDecimal arrangeFund;

    private BigDecimal yearFund;

    private BigDecimal nextFund;


    /** 负责人名 */
    @UpdateIgnore
    @InsertIgnore
    private String projectLeaderName;
    /** 承担部门名 */
    @UpdateIgnore
    @InsertIgnore
    private String departName;
    /** 提报部门名 */
    @UpdateIgnore
    @InsertIgnore
    private String deptName;
    /** 创建人名 */
    @UpdateIgnore
    @InsertIgnore
    private String createName;

    /** 权限用户 */
    @UpdateIgnore
    @InsertIgnore
    private Long permissionUser;

    /** 权限部门 */
    @UpdateIgnore
    @InsertIgnore
    private Long permissionDept;
}
